计算机系统结构 实验四 Cache性能分析 | 您所在的位置:网站首页 › Cache 的基本概念与工作原理 › 计算机系统结构 实验四 Cache性能分析 |
一、实验目的
(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。 (2)掌握Cache容量、相联度、块大小对Cache性能的影响。 (3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。 (4) 理解LRU与随机法的基本思想以及它们对Cache性能的影响。 二、实验硬、软件环境Windows计算机、Mycache算法模拟器 三、实验内容及步骤1. 首先要掌握MyCache模拟器的使用方法。 (1)双击 MyCache.exe,启动模拟器。 (2)系统打开操作界面,如下图所示: (3)可以设置的参数包括Cache的容量、块大小、相联度、替换算法、预取策略、写策略、写不命中时的调块策略。可以直接从列表中选择。 (4)访问地址可以选择来自地址流文件,也可以选择手动输入。如果是前者,则可以通过单击“浏览”按钮,从模拟器所在文件夹下的“地址流”文件夹中选取地址流文件(.din)文件,然后执行。执行得方式可以是单步,也可以选择一次执行结束。如果选择手动输入,就可以在“执行控制”区域中输入块地址,然后单击“访问”按钮。系统会在界面的右边显示访问类型、地址、块号以及块内地址。 (5)模拟结果包括: a) 访问总次数,总的不命中次数,总的不命中率。 b) 读指令操作的次数,其不命中次数及其不命中率。 c) 读数据操作的次数,其不命中次数及其不命中率。 d) 写数据操作的次数,其不命中次数及其不命中率。 e) 手动输入单次访问的相关信息。 2. 设计方法降低Cache不命中率 方法一:探究Cache容量对不命中率的影响 (1)选择不同的Cache容量,包括2KB、4KB,8KB,16KB,32KB,64KB、128KB和256KB。分别执行模拟器(单击“执行到底”按钮即可执行),然后在表4.1中记录各种情况下的不命中率. 表4.1 不同容量下Cache的不命中率 Cache容量(KB) 2 4 8 16 32 64 128 256 不命中率 9.78% 7.19% 4.48% 2.65% 1.42% 0.89% 0.42% 0.40% (2)选择 all.din 地址流文件。 (3)以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线。
(4)根据该模拟结果,分析Cache容量对不命中率的影响。 答:根据实验结果可以看出,Cache的不命中率随着Cache容量的增大而降低,但当容量增大到一定程度后(256KB),再增大Cache的容量变化就不明显了。 方法二:相联度对不命中率的影响 (1)用鼠标单击“复位”按钮,把各参数设置为默认值。此时的Cache容量为64KB。 (2)选择一个地址流文件。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。 (3)选择不同的Cache相联度,包括2路、4路、8路、16路和32路。分别执行模拟器(单击“执行到底”按钮即可执行),然后在表4.2中记录各种情况下的不命中率。 表4.2 当容量为64KB时,不同相联度下Cache的不命中率 相联度 1 2 4 8 16 32 不命中率 0.89% 0.53% 0.47% 0.45% 0.44% 0.40% 选择 all.din 地址流文件。 把Cache的容量设置为256KB,重复3)的工作,并填写表4.3.表4.3 当Cache容量为256KB时,不同相联度下Cache的不命中率 相联度 1 2 4 8 16 32 不命中率 0.49% 0.38% 0.36% 0.36% 0.35% 0.35% (5)以相联度为横坐标,画出在64KB和256KB的情况下不命中率随Cache相联度变化而变化的曲线,并指明地址流文件名all.din。
(6)根据该模拟结果,你能得出什么结论? 答:从图中可以看出,提高相联度可以降低Cache不命中率。但随着相联度提到到一定程度后(8路相联),再提高相联度Cache的不命中率几乎不变了。 方法三: Cache块大小对不命中率的影响 (1)用鼠标单击“复位”按钮,把各参数设置为默认值。 (2)选择一个地址流文件。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。 (3)选择不同的Cache块大小,包括16B、32B、64B、128B和256B。对于 Cache的各种容量,包括2KB、8KB、32KB、64KB、128KB和512KB。分别执行模拟器(单击“执行到底”按钮即可执行),然后在表4.4中记录各种情况下的不命中率。 表4.4各种情况下 Cache的不命中率 块大小(B) Cache容量(KB) 2 8 32 64 128 512 16 12.02% 5.79% 1.86% 1.26% 0.95% 0.71% 32 9.87% 4.48% 1.42% 0.89% 0.60% 0.42% 64 9.36% 4.03% 1.20% 0.71% 0.43% 0.27% 128 10.49% 4.60% 1.08% 0.64% 0.35% 0.20% 256 13.45% 5.35% 1.19% 0.67% 0.34% 0.16% 地址流文件名:all.din。 (4)分析Cache块大小对不命中率的影响。 答:从上图可以看出,当Cache容量一定的时候,若增大Cache块大小,Cache的不命中率先是下降,然后反升。这是因为增加块大小会产生双重作用: (1)增加了空间局部性,减少了强制性不命中;(2)减少了Cache中块的数目,所以有可能增加冲突不命中。当块比较小时,第(1)种作用会超过(2)种作用,使不命中率下降:当块比较大时,第(2)种作用超过第(1)种作用,反而使不命中率上上升。 方法四:替换算法对不命中率的影响 (1)用鼠标单击“复位”按钮,把各参数设置为默认值。 (2)选择地址流文件all. din。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取。 (3)对于不同的替换算法、Cache容量和相联度,分别执行模拟器(单击“执行到底”按钮即可执行),然后在表4.5中记录各种情况下的不命中率。 表4.5 LRU和随机替换算法的不命中率比较 Cache容量(KB) 相联度 2路 4路 8路 LRU 随机算法 LRU 随机算法 LRU 随机算法 16KB 1.71% 2.13% 1.33% 1.92% 1.21% 2.10% 64KB 0.53% 0.47% 0.47% 0.63% 0.45% 0.61% 256KB 0.38% 0.39% 0.36% 0.37% 0.36% 0.36% 1M 0.35% 0.35% 0.35% 0.35% 0.35% 0.35% (4)分析不同的替换算法对Cache不命中率的影响。 答:从上表数据和图示曲线可以看出,无论相联度是多大,在Cache容量比较小时,LRU法的不命中率低于随机法,但当Cache容量增加到一定程度之后(256KB), LRU法和随机法已经没有太大的差别了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |